cmake_minimum_required (VERSION 3.0)

project (gamma)

# dependent on libsndfile and portaudio
find_path(LIBSNDFILE_H sndfile.h)
find_library(LIBSNDFILE_LIB NAMES libsndfile-1 libsndfile)
find_path(PORTAUDIO_H portaudio.h)
find_library(PORTAUDIO_LIB NAMES portaudio)

set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

set(SOURCEFILES
        src/arr.cpp
        src/AudioIO.cpp
        src/Conversion.cpp
        src/Domain.cpp
        src/DFT.cpp
        src/FFT_fftpack.cpp
        src/fftpack++1.cpp
        src/fftpack++2.cpp
        src/SoundFile.cpp
        src/Print.cpp
        src/Recorder.cpp
        src/scl.cpp
        src/Scheduler.cpp
        src/Timer.cpp
        src/SoundFile.cpp)

include_directories(. Gamma ${CMAKE_INSTALL_FULL_INCLUDEDIR} ${PORTAUDIO_H} ${LIBSNDFILE_H})

add_library (gamma ${SOURCEFILES})
target_link_libraries(gamma PUBLIC ${LIBSNDFILE_LIB} ${PORTAUDIO_LIB})

install(
  TARGETS gamma
  RUNTIME DESTINATION bin
  LIBRARY DESTINATION lib
  ARCHIVE DESTINATION lib
)

if(NOT DISABLE_INSTALL_HEADERS)
    install(DIRECTORY Gamma DESTINATION include FILES_MATCHING PATTERN "*.h")
endif()
